#include <stdio.h>
#include <string>
#include <cstring>
#include <algorithm>

using namespace std;

int vis[10];
char s[10];
char o[10];
char ans[1000][10];
int ai=-1;
int len;

int cmp(char *c1,char *c2) {
    int l1=strlen(c1),l2=strlen(c2);
    if (l1!=l2) return 0;
    else {
        for (int i=0;i<l1;i++) {
            if (c1[i]!=c2[i]) return 0;
        }
        return 1;
    }
}

void func(int ind) {
    for (int i=0;i<len;i++) {
        if (!vis[i]) {
            o[ind]=s[i];
            vis[i]=1;
            if (ind==len-1) {
                if(ai==-1) {
                    ++ai;
                    for (int j=0;j<len;j++) {
                        ans[ai][j]=o[j];
                    }
                } else {
                    int b=1;
                    for (int j=0;j<=ai;j++) {
                        if (cmp(ans[j],o)) {
                            b=0;
                            break;
                        }
                    }
                    if (b) {
                        ++ai;
                        for (int j=0;j<len;j++) {
                            ans[ai][j]=o[j];
                        }
                    }
                }
            } else {
                func(ind+1);
            }
            vis[i]=0;
        }
    }
}

bool charcmp(char c1,char c2) {
    // if (c1==c2 )
    return (int)tolower(c1)<(int)tolower(c2);
    // return c1<c2;
}

int main() {
    scanf("%s",s);
    len=strlen(s);
    sort(s,s+len,charcmp);
    // printf("%s",s);
    func(0);
    for (int i=0;i<=ai;i++) {
        printf("%s\n",ans[i]);
    }
}